<?php
declare(strict_types=1);


namespace app\admin\controller\system;

use app\common\Attribute\ClassTitle;
use app\common\Attribute\RequestMethod;
use app\common\Attribute\RequestTitle;
use app\common\controller\AmisAdminController;
use LhpAmis\Renderers\Amis;
use app\admin\model\Module as ModuleModel;
use think\facade\Db;

/**
 * 行为管理控制器
 */
#[ClassTitle('行为管理')]
class Action extends AmisAdminController
{
    /**
     * 首页
     * @author dragonlhp <1458485514@qq.com>
     * @return mixed
     * @throws \think\Exception
     * @throws \think\db\Express
     */
    #[RequestMethod(['GET,POST'])]
    #[RequestTitle('列表')]
    public function index()
    {
        // 查询
        $map = $this->getMap();
        // 数据列表
        $data_list = Db::name('admin_action')->where($map)->order('id desc')->paginate();
        // 所有模块的名称和标题
        // $list_module = ModuleModel::getModule();

        // 创建或编辑页面的字段
        $fields = [
            ['id', 'hidden',],
            // ['module', 'select', '所属模块', '', $list_module],
            ['name', 'text', '行为标识', '由英文字母和下划线组成'],
            ['title', 'text', '行为名称', ''],
            ['remark', 'textarea', '行为描述'],
            ['rule', 'textarea', '行为规则', '不写则只记录日志'],
            ['log', 'textarea', '日志规则', '记录日志备注时按此规则来生成，支持[变量|函数]。目前变量有：user,time,model,record,data,details'],
            ['status', 'radio', '立即启用', '', ['否', '是'], 1]
        ];


        return Amis::make()->TableBuilder()
            ->setPageTitle('行为管理') // 设置页面标题
            ->setSearch(['name' => '标识', 'title' => '名称']) // 设置搜索框
            ->addColumns([ // 批量添加数据列
                ['id', 'ID'],
                ['name', '标识'],
                ['title', '名称'],
                ['remark', '描述'],
                ['status', '状态', 'switch'],
                ['right_button', '操作', 'btn']
            ])
            ->addTopButtons('enable,disable,delete') // 批量添加顶部按钮
            ->addRightButtons('delete') // 批量添加右侧按钮

        ;
    }
}